package com.example;

/**
 * Hello world!
 *
 */
public class CPUPerformanceTest {
    public static void main(String[] args) {
        int iterations = 10000; // 设置迭代次数
        long startTime = System.nanoTime(); // 获取开始时间（纳秒）

        for (int i = 0; i < iterations; i++) {
            long l = computeComplexOperation(); // 执行复杂运算
//            System.out.println("斐波那契数列的大数值"+l);
        }

        long endTime = System.nanoTime(); // 获取结束时间（纳秒）
        long duration = endTime - startTime; // 计算总执行时间（纳秒）

        double operationsPerSecond = (double) iterations * 1000000000.0 / duration; // 计算每秒钟能执行多少次运算
        System.out.println("Total iterations: " + iterations);
        System.out.println("Total duration: " + duration + " nanoseconds");
        System.out.println("Operations per second: " + operationsPerSecond);
    }

    private static long computeComplexOperation() {
        // 执行一些复杂的数学运算，这里以计算斐波那契数列的大数值为例
        long fibonacciNumber = fibonacci(40); // 计算第40个斐波那契数
        // 注意：这里我们并没有使用fibonacciNumber，只是为了计算而计算
        return fibonacciNumber;
    }

    private static long fibonacci(int n) {
        if (n <= 1) {
            return n;
        }
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}
